home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 3 / DOS078A.dsk / ERROR HANDLER.bas < prev    next >
BASIC Source File  |  2012-02-16  |  5KB  |  112 lines

  1. 0  ONERR  GOTO 63952
  2. 1  REM       TEST LINE
  3. 5  HOME : SPEED= 75
  4. 10  PRINT "      ERROR HANDLER"
  5. 20  PRINT "           BY"
  6. 30  PRINT "       ROB STEWART"
  7. 40  FOR I = 1 TO 1000: NEXT I
  8. 41  REM *************************
  9. 42  REM * DONATED BY AUTHOR TO  *
  10. 43  REM * NORTHERN ILLINOIS AUG *
  11. 44  REM * DELCARED PUBLIC DOMAIN*
  12. 45  REM *************************
  13. 50  PRINT : PRINT 
  14. 60  PRINT "    THIS IS A PROGRAM DEBUGGING AID"
  15. 70  PRINT "THAT I WROTE TO HELP MYSELF."
  16. 80  PRINT : PRINT 
  17. 90  PRINT "PERHAPS YOU WILL FIND IT USEFUL ALSO."
  18. 100  PRINT : PRINT : PRINT 
  19. 110  INVERSE : PRINT "HOW TO USE...": NORMAL : PRINT 
  20. 120  PRINT "START WITH THIS BASIC PROGRAM."
  21. 130  PRINT "DELETE LINES 1 THRU 1000"
  22. 140  PRINT "  (THAT REMOVES THESE INSTRUCTIONS)"
  23. 150  PRINT "THEN WRITE YOUR PROGRAM BETWEEN "
  24. 160  PRINT "LINES 0 - 63000"
  25. 170  PRINT 
  26. 180  PRINT "IF AN ERROR OCCURS, THE ERROR WILL BE"
  27. 190  PRINT "DESCRIBED & THE LINE WHERE IT OCCURRED"
  28. 200  PRINT "WILL THEN BE LISTED FOR YOU."
  29. 210  PRINT : PRINT : PRINT 
  30. 220  INVERSE : PRINT "METHOD...": NORMAL : PRINT 
  31. 230  PRINT "LINE 0 IS THE ONERR GOTO"
  32. 240  PRINT 
  33. 250  PRINT "WHEN AN ERROR IS ENCOUNTERED THE "
  34. 260  PRINT "PROGRAM JUMPS TO THE ERROR HANDLER."
  35. 270  PRINT : PRINT " THE ERROR HANDLER THEN PRINTS OUT THE"
  36. 280  PRINT "TYPE OF ERROR. THE LINE WHERE THE ERROR"
  37. 290  PRINT "OCCURRED IS THEN POKED INTO THE LAST"
  38. 300  PRINT "LINE IN THE PROGRAM, THE NEW END OF"
  39. 310  PRINT "PROGRAM IS DETERMINED AND POKED"
  40. 320  PRINT "INTO MEMORY, & THEN THE LINE IS LISTED."
  41. 330  PRINT : PRINT : PRINT 
  42. 340  PRINT "I WILL NOW POKE THE LINE-IN-ERROR = 1"
  43. 350  PRINT "AND LET YOU SEE WHAT HAPPENS."
  44. 360  PRINT 
  45. 370  PRINT "I WILL NOT CHANGE THE ERROR, SO WHAT-"
  46. 380  PRINT "EVER WAS THERE IS WHAT YOU WILL GET."
  47. 381  PRINT : PRINT "WHEN YOU ARE DONE TESTING THE PROGRAM,"
  48. 382  PRINT "BE SURE TO EITHER CHANGE THE ONERR GOTO"
  49. 383  PRINT "OR WRITE YOUR OWN ERROR HANDLER TO TAKE"
  50. 384  PRINT "THE PLACE OF MINE.": PRINT : PRINT 
  51. 390  POKE 218,1: POKE 219,0
  52. 999  PRINT "PAUSE....": FOR I = 1 TO 3000: NEXT I
  53. 1000  SPEED= 255: GOTO 63952
  54. 63951  SPEED= 255: END 
  55. 63952  REM    ***  ERROR HANDLER  ***
  56. 63953 ER =  PEEK(222)
  57. 63954 EL =  PEEK(218) + PEEK(219) *256
  58. 63955  TEXT : HOME 
  59. 63956  IF ER = 0  THEN  INVERSE : PRINT "NEXT";: NORMAL : PRINT " WITHOUT ";: INVERSE : PRINT "FOR";: NORMAL : GOTO 63975
  60. 63957  IF ER = 16  THEN  INVERSE : PRINT "SYNTAX ERROR";: NORMAL : GOTO 63975
  61. 63958  IF ER = 22  THEN  INVERSE : PRINT "RETURN";: NORMAL : PRINT " WITHOUT ";: INVERSE : PRINT "GOSUB";: NORMAL : GOTO 63975
  62. 63959  IF ER = 42  THEN  INVERSE : PRINT "OUT OF DATA";: NORMAL : GOTO 63975
  63. 63960  IF ER = 53  THEN  INVERSE : PRINT "ILLEGAL QUANTITY";: NORMAL : GOTO 63975
  64. 63961  IF ER = 69  THEN  INVERSE : PRINT "OVERFLOW";: NORMAL : GOTO 63975
  65. 63962  IF ER = 77  THEN  INVERSE : PRINT "OUT OF MEMORY";: NORMAL : GOTO 63975
  66. 63963  IF ER = 90  THEN  INVERSE : PRINT "UNDEFINED STATEMENT";: NORMAL : GOTO 63975
  67. 63964  IF ER = 107  THEN  INVERSE : PRINT "BAD SUBSCRIPT";: NORMAL : GOTO 63975
  68. 63965  IF ER = 120  THEN  INVERSE : PRINT "REDIMENSIONED ARRAY";: NORMAL : GOTO 63975
  69. 63966  IF ER = 133  THEN  INVERSE : PRINT "DIVIDED BY 0 ";: NORMAL : GOTO 63975
  70. 63967  IF ER = 163  THEN  INVERSE : PRINT "TYPE MISMATCH";: NORMAL : GOTO 63975
  71. 63968  IF ER = 176  THEN  INVERSE : PRINT "STRING TO LONG";: NORMAL : GOTO 63975
  72. 63969  IF ER = 191  THEN  INVERSE : PRINT "FORMULA TOO COMPLEX";: NORMAL : GOTO 63975
  73. 63970  IF ER = 224  THEN  INVERSE : PRINT "UNDEFINED FUNCTION";: NORMAL : GOTO 63975
  74. 63971  IF ER = 254  THEN  INVERSE : PRINT "BAD RESPONSE TO";: NORMAL : PRINT " INPUT ";: INVERSE : PRINT "STATEMENT": NORMAL : GOTO 63975
  75. 63972  IF ER = 255  THEN  INVERSE : PRINT "CONTROL";: NORMAL : PRINT " C ";: INVERSE : PRINT "INTERUPT ATTEMPTED": NORMAL : GOTO 63975
  76. 63973  FLASH : PRINT "UNKNOWN ERROR CODE";: NORMAL 
  77. 63974  PRINT "         ERROR = ";ER
  78. 63975  PRINT " IN LINE # ";: INVERSE : PRINT EL: NORMAL 
  79. 63976 HE =  PEEK(176) *256
  80. 63977 LE =  PEEK(175)
  81. 63978 EP = HE +LE
  82. 63979  IF  PEEK(EP) = 255 GOTO 63981
  83. 63980 EP = EP -1: GOTO 63979
  84. 63981  IF  PEEK(EP -1) = 255 GOTO 63983
  85. 63982  PRINT : PRINT "NO LINE #  65535": END 
  86. 63983 EP = EP +1: POKE EP,188
  87. 63984  FOR I = 1 TO  LEN( STR$(EL))
  88. 63985  POKE EP +I, ASC( MID$ ( STR$(EL),I,1)): NEXT I
  89. 63986 EP = EP + LEN( STR$(EL))
  90. 63987  POKE EP +1,58
  91. 63988  POKE EP +2,128
  92. 63989  POKE EP +3,0
  93. 63990  POKE EP +4,0
  94. 63991  POKE EP +5,0
  95. 63992  POKE EP +6,10
  96. 63993 EP = EP +6
  97. 63994 HE = 0:LE = 0
  98. 63995  IF EP <256  THEN  GOTO 63997
  99. 63996 EP = EP -256:HE = HE +1: GOTO 63995
  100. 63997 LE = EP
  101. 63998  POKE 176,HE: POKE 175,LE
  102. 63999  REM 
  103. 65526  REM   
  104. 65527  REM     WRITTEN BY   
  105. 65528  REM 
  106. 65529  REM ROBERTS R. STEWART
  107. 65530  REM 763 SOUTH WAYNE PLACE
  108. 65531  REM WHEELING, IL 60090
  109. 65532  REM 
  110. 65533  REM  COPYRIGHT   OCT 1980
  111. 65534  REM 
  112. 65535  LIST 1: END